Fast packet switching is an emerging multiplexing and switching technique used in cell relay services, such as the asynchronous transfer mode (ATM) technique, and frame relay services. Briefly, fast packet switching is a technique wherein a message is communicated between a source endpoint and a destination endpoint of a switching network using a series of information passing elements, i.e. packets, each of which contain both a payload field and an address field. The switching network used for connecting the two endpoints is composed of one or more fast packet switches with transmission facilities connecting the switches. Each of the fast packet switches contains a plurality of switch ports between which packets are communicated via a self-routing switching fabric. As a result, each of the switch ports can be employed either as a connection to an endpoint or as a connection to another fast packet switch in the network via the transmission facilities.
Each message to be communicated using fast packet switching is packetized by dividing the message into one or more pieces of information. Each of the pieces of information is loaded into the payload field of a corresponding packet. In a frame relay service, the packets are referred to as frames, and the length of the payload field is variable. In contrast, the length of the payload field is fixed in a cell relay service, wherein the packets are referred to as cells. Regardless of the type of packet employed, each of the packets is further loaded with an address field which contains information identifying a provisioned virtual connection between the two endpoints. Typically, the address field is contained in a header in the packet.
The packets are then forwarded to the switching network at the source endpoint for transmission to the destination endpoint. The switching network routes the packets to the destination endpoint based upon routing data in the fast packet switches. The routing data is written into the fast packet switches by a connection management processor at the time the virtual connection is provisioned. In particular, the routing data specifies how a packet is to be routed through the network based upon information contained within the address field of the packet.
Presently, a traffic contract for each virtual connection is negotiated, between a subscriber and a provisioning agent who represents the network, at the time of provisioning or subscription. The terms of the contract include a constraint on the amount of bandwidth which can be used by the subscriber on the virtual connection. The measure of the amount of bandwidth used by a virtual connection can be based upon a measure of the mean bit rate, the peak bit rate, and/or the duration at which the peak rate is sustained, to name a few commonly-used parameters.
In accordance with the negotiated traffic contract, the connection management processor writes bandwidth parameters into the fast packet switches, wherein the bandwidth parameters are representative of bandwidth usage associated with each provisioned connection provided by the switch. Thereafter, each virtual connection is monitored within each switch for possible contract violations.
An example monitoring scheme utilizes what is referred to in the art as a "leaky bucket". A leaky bucket is a counter which is incremented upon an arrival of a packet, and is decremented periodically. If an incoming packet causes the counter to exceed a predetermined threshold, the contract is considered to be violated.
Regardless of the monitoring scheme employed, the network penalizes packets which violate the contract. For example, the network can discard the violating packets, or mark the violating packets with a low priority for loss. In this manner, the network can allocate bandwidth for the virtual connection and guarantee that the subscriber using the connection does not exceed the bandwidth parameters, which could result in interfering with other customers sharing bandwidth in the network.
Disadvantages of the present approach of associating a corresponding bandwidth constraint with each virtual connection become evident when implementing a virtual private network (VPN). A virtual private network is implemented for a plurality of subscribers by provisioning a plurality of permanent virtual connections such that each subscriber is permanently virtually connected to each other subscriber. If N subscribers are to be fully interconnected in a virtual private network, i.e. each subscriber is capable of transmitting information to each other subscriber, N(N-1) one-way virtual connections are required (one connection from each of N subscribers to the N-1 others). Since every connection has a corresponding cost commensurate with bandwidth allocated and associated therewith, the cost of implementing a virtual private network may be prohibitive for larger numbers of subscribers.